using System;
using System.Collections.Generic;

using PMServiceDesk.DataType;
using PMServiceDesk.DataAccess;

namespace PMServiceDesk.BusinessLogic
{
    public class DocumentoTransicionEstadoLogic
    {
        #region Variables

        private DocumentoTransicionEstadoData _documentoTransicionEstadoData;

        #endregion

        #region Constructores

        public DocumentoTransicionEstadoLogic()
        {
            _documentoTransicionEstadoData = new DocumentoTransicionEstadoData();
        }

        #endregion

        #region Metodos

        public DocumentoTransicionEstadoType CargarPorId(string id)
        {
            _documentoTransicionEstadoData.FiltrarPorId(id);

            return _documentoTransicionEstadoData.Cargar();
        }

        public void Eliminar(string id)
        {
            _documentoTransicionEstadoData.Eliminar(id);
        }

        public void Grabar(DocumentoTransicionEstadoType documentoTransicionEstado)
        {
            _documentoTransicionEstadoData.Grabar(documentoTransicionEstado);
        }

        public List<DocumentoTransicionEstadoType> CargarExplorador(string transicionEstadoId)
        {
            if(transicionEstadoId != "") _documentoTransicionEstadoData.FiltrarPorTransicionEstadoId(transicionEstadoId);

            return _documentoTransicionEstadoData.CargarListaVista();
        }

        public List<DocumentoTransicionEstadoType> CargarExploradorPaginado(DocumentoTransicionEstadoType registroBusqueda, int paginaActual = 0, int cantidadMostrar = 0,string orderBy= "")
        {
            _documentoTransicionEstadoData.FiltrarPorTransicionEstadoId(registroBusqueda.TransicionEstadoId);
            if (registroBusqueda.ExtensionDocumentoId != "") _documentoTransicionEstadoData.FiltrarPorExtensionDocumentoId(registroBusqueda.ExtensionDocumentoId);
            if (registroBusqueda.Nombre != "") _documentoTransicionEstadoData.FiltrarPorNombre(registroBusqueda.Nombre);
            if (registroBusqueda.Comentario != "") _documentoTransicionEstadoData.FiltrarPorComentario(registroBusqueda.Comentario);

            return _documentoTransicionEstadoData.CargarListaVista(paginaActual,cantidadMostrar,orderBy);

        }

        public List<DocumentoTransicionEstadoType> CargarTransicion(string paqueteTrabajoId,string estadoOrigenId, string estadoDestinoId, string rolId)
        {
            return _documentoTransicionEstadoData.CargarTransicion(paqueteTrabajoId,estadoOrigenId, estadoDestinoId, rolId);
        }

        #endregion
    }
}
